
//对axios函数库进行二次封装
//目的1：利用axios请求、响应拦截器功能
//目的2：请求拦截器，一般可以在请求头总携带公共的参数：token
//目的3：响应拦截器，可以简化服务器返回的数据，处理http网络错误
import axios from "axios";
import useUserStore from "@/store/modules/user.ts";
//利用axios.create方法创建一个axios实例：可以设置基础路径、超时的时间设置
const  request = axios.create({
    baseURL:'/api',
    timeout:5000
});

//请求拦截器
request.interceptors.request.use((config)=>{
    //获取用户仓库
    let userStore = useUserStore();
    console.log(userStore.userInfo.token);
    if(userStore.userInfo.token){
        config.headers.token=userStore.userInfo.token;
    }
    return config;
});

//响应拦截器
request.interceptors.response.use((response)=>{
    return response.data;
},(error)=>{
    return Promise.reject( new Error(error.message))
});

//对外暴露axios
export  default  request;
